package com.ly.heart.domain.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.ly.common.core.domain.ActCurrentTaskVo;
import com.ly.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

@Data
@JsonInclude(JsonInclude.Include.ALWAYS)
@ApiModel(value="销售订单列表返回VO")
public class SaleOrderDetailVo extends BaseEntity implements Serializable {

    @ApiModelProperty("销售订单id")
    private String saleOrderId;

    @ApiModelProperty("明细id")
    private String materialDetailId;

    @ApiModelProperty("物料id")
    private String materialId;

    @ApiModelProperty("客户id")
    private String customerId;

    @ApiModelProperty("物料编码")
    private String materialCode;

    @ApiModelProperty("物料名称")
    private String materialName;

    @ApiModelProperty ("批号")
    private String batchNum;

    @ApiModelProperty ("行号")
    private String lineNumber;

    @ApiModelProperty("单据编码")
    private String kingDocCode;

    @ApiModelProperty("订单编码")
    private String saleCode;

    @ApiModelProperty("状态")
    private String state;

    @ApiModelProperty("客户名称")
    private String customerName;

    @ApiModelProperty("累计出库数量")
    private String totalReceiptNum;

    @ApiModelProperty("累计出库价税合计")
    private String totalAmount;

    @ApiModelProperty("累计退货数量")
    private String totalRefundNum;

    @ApiModelProperty("累计退货价税合计")
    private String totalRefundAmount;

    @ApiModelProperty("累计仅退款不退货数量")
    private String onlyTotalRefundNum;

    @ApiModelProperty("累计仅退款不退货价税合计")
    private String onlyTotalRefundAmount;

    @ApiModelProperty("累计退货补货数量")
    private String totalSupplyRefundNum;

    @ApiModelProperty("累计退货补货价税合计")
    private String totalSupplyRefundAmount;

    @ApiModelProperty("剩余出库数量")
    private String remainingDeliveryNum;

    @ApiModelProperty("剩余出库价税合计")
    private String remainingTaxTotal;

    @ApiModelProperty("实际出库数量")
    private String actualDeliveryNum;

    @ApiModelProperty("累计应收数量")
    private String totalSaleInvoiceReceivableNum;

    @ApiModelProperty("累计应收价税合计")
    private String totalSaleInvoiceReceivableTaxPrice;

    @ApiModelProperty("剩余应收数量")
    private String remainingReceivableNum;

    @ApiModelProperty("剩余应收价税合计")
    private String remainingReceivableTaxTotal;

    @ApiModelProperty("提前开票数量")
    private String totalSaleAdvanceInvoiceNum;

    @ApiModelProperty("提前开票价税合计")
    private String totalSaleAdvanceInvoiceTaxPrice;

    @ApiModelProperty("销售数量")
    private String number;

    @ApiModelProperty ("含税单价")
    private String taxPrice;

    @ApiModelProperty("单价")
    private String price;

    @ApiModelProperty ("税率")
    private String taxRate;

    @ApiModelProperty ("金额")
    private String amountMoney;

    @ApiModelProperty ("税额")
    private String taxAmount;

    @ApiModelProperty ("价税合计")
    private String totalTaxPrice;

    @ApiModelProperty("不含税金额")
    private String noTaxMoney;

    @ApiModelProperty("折扣率")
    private String discountRate;

    @ApiModelProperty ("折扣金额")
    private String discountAmount;

    @ApiModelProperty("汇率")
    private String rateType;

    @ApiModelProperty ("销售员")
    private String saleUserId;

    @ApiModelProperty ("销售员名称")
    private String saleUserName;

    @ApiModelProperty ("销售部门")
    private String saleDept;

    @ApiModelProperty ("销售部门名称")
    private String saleDeptName;

    @ApiModelProperty ("部门id")
    private String deptId;

    @ApiModelProperty ("单据类型名称")
    private String docTitle;

    /** 税额(本位币) */
    @ApiModelProperty ("税额(本位币)")
    private String taxAmountBase;

    /** 金额(本位币) */
    @ApiModelProperty ("金额(本位币)")
    private String moneyAmountBase;

    /** 价税合计(本位币) */
    @ApiModelProperty ("价税合计(本位币)")
    private String totalPriceTaxBase;

    @ApiModelProperty("计价单位")
    private String meteringUnitName;

    @ApiModelProperty("计价单位code")
    private String pricingUnit;

    @ApiModelProperty("销售单位")
    private String saleUnitName;

    @ApiModelProperty("规格型号")
    private String model;

    @ApiModelProperty("计量数量")
    private String pricingNum;

    @ApiModelProperty("要货日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date deliveryDate;

    @ApiModelProperty("日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date saleDate;

    @ApiModelProperty("流程实例id")
    private String instanceId;

    @ApiModelProperty ( "当下审批人" )
    @TableField( exist = false )
    private String approvedUser;

    @ApiModelProperty ( "审批内容" )
    @TableField ( exist = false )
    private String remark;

    @ApiModelProperty ( "当前任务信息" )
    @TableField ( exist = false )
    private ActCurrentTaskVo currentTask;

    @ApiModelProperty ( "已推金蝶" )
    @TableField ( exist = false )
    private Integer isSend;

}
